<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script>var _sf_startpt=(new Date()).getTime()</script>
  <title>Dear Mark Zuckerberg by Dalton Caldwell</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.5, minimum-scale=0.5">
  <meta name="generator" content="Svbtle.com" />
  <meta name="description" content="
     Mark, On June 13, 2012, at 4:30 p.m., I attended a meeting at Facebook HQ in Menlo Park, California. In addition to myself, the meeting was attended by executives at Facebook with the following titles: &amp;ldquo;VP, Engineering &amp;amp; Products&amp;rdquo;, &amp;ldquo;VP, Partnerships&amp;rdquo;,&amp;ldquo;VP, Corporate &amp;amp; Business Development&amp;rdquo;, an... |  
    Dalton Caldwell does things the hard way.
      &#8226; 
      Dalton Caldwell's blog
  "/>
  <link rel="alternate" type="application/rss+xml" href="http://daltoncaldwell.com/feed" />
  <link href="https://d1yg14i6wd46hx.cloudfront.net/cargo/build.blog-162e1264ba586785fb5844c79eba3d80.css" media="screen" rel="stylesheet" type="text/css" />
  <style>blockquote {border-color: #556270;}aside#logo,aside#logo div a,ul#user_meta a:hover span.link_logo_inside,ul#user_meta a:hover span.link_logo,aside.kudo.complete span.circle {background-color: #556270;}aside#logo div a,aside.kudo.complete span.circle {background-image: url(//mysterious.s3.amazonaws.com/atom_large.png);}section.preview header#begin h2,ul#user_meta a:hover,nav.pagination span.next a,nav.pagination span.prev a {color: #556270;}ul#user_meta a:hover,nav.pagination span.next a,nav.pagination span.prev a {border-color: #556270;}::-moz-selection { background: #556270; color: #fff; text-shadow: none;}::selection { background: #556270; color: #fff; text-shadow: none;}
  </style>
    <script data-cfasync="false" src="https://use.typekit.com/syh2mqx.js"></script>
  <script data-cfasync="false">
  try{Typekit.load();}catch(e){}
  // GA << ANALYTICS
  var _gaq = _gaq || []; _gaq.push( ['_setAccount', 'UA-28994039-1'],['_setDomainName', 'none'],['_setAllowLinker', true],['_setUsername', 'dalton'],['_trackPageview'],['b._setAccount', 'UA-16386502-1'],['b._setDomainName', 'daltoncaldwell.com'],['b._setAllowLinker', true],['b._trackPageview']);(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();
  </script>
</head>
<body class="dalton">
  <header id="sidebar">
  <aside id="logo" class="clearfix">
    <div class="clearfix">
      <a href="http://daltoncaldwell.com">dalton</a>
    </div>
  </aside>
  <ul id="user_meta">
    <li class="blog_name">  
      <h1 id="blog_name">
        <a href="http://daltoncaldwell.com">dalton</a>
      </h1>
    </li>
    <li class="tagline">
      <h2 id="tagline">
        Dalton Caldwell does things the hard way.
      </h2>
    </li>
    <li class="link twitter">
      <a href="http://twitter.com/daltonc">
        <span class="link_logo"><span class="link_logo_inside">X</span></span>
        @daltonc
      </a>
    </li>
    <li class="link feed">
      <a href="http://daltoncaldwell.com/feed">
        <span class="link_logo"><span class="link_logo_inside">X</span></span>
        rss feed
      </a>
    </li>
  </ul>
  <aside id="svbtle_linkback">
    <a href="https://svbtle.com">
      <span class="logo_square"><span class="logo_circle">&nbsp;</span></span>&nbsp;<span class="svbtle">Svbtle</span>
    </a>
  </aside>
</header>

<section id="river">
  <header id="begin">
    <time datetime="2012-08-01" id="top_time">August 01, 2012</time>
  </header>
  <article id="eidH62ZJUFcKy8neP7zxAqs8n6aVKaPbgYAgdXMAaX" class="post ">
  <h2>
    <a href="/dear-mark-zuckerberg" class="no-link title">Dear Mark Zuckerberg</a>
  </h2>
  <p>Mark,</p>

<p>On June 13, 2012, at 4:30 p.m., I attended a meeting at Facebook HQ in Menlo Park, California. In addition to myself, the meeting was attended by executives at Facebook with the following titles: &ldquo;VP, Engineering &amp; Products&rdquo;, &ldquo;VP, Partnerships&rdquo;,&ldquo;VP, Corporate &amp; Business Development&rdquo;, and &ldquo;Director, Developer Relations/Open Graph&rdquo;.</p>

<p>As I understood at the time, the purpose of the meeting was for me to present/demonstrate a new iOS app &amp; service I have been building on the Facebook Platform. Previously, I had been reassured by Facebook dev-relations employees that the service I was building was an interesting/ valuable use of Open Graph &amp; Facebook Platform. I was hoping the outcome of this meeting would be executive-level support for my impending product launch. </p>

<p>The meeting took an odd turn when the individuals in the room explained that the product I was building was competitive with your recently-announced Facebook App Center product. Your executives explained to me that they would hate to have to compete with the &ldquo;interesting product&rdquo; I had built, and that since I am a &ldquo;nice guy with a good reputation&rdquo; that they wanted to acquire my company to help build App Center. </p>

<p>I quickly became skeptical and explained that I was not interested in an <a href="http://www.marco.org/2012/07/21/followup-talent-acquisitions">acqui-hire</a>. I said that if Facebook wanted to have a serious conversation about acquiring my team and product, I would entertain the idea. Otherwise, I had zero interest in seeing my product shut down and joining Facebook. I told your team I would rather reboot my company than go down that route.</p>

<p>Strangely, your &ldquo;platform developer relations&rdquo; executive made no attempt to defend my position. Rather, he explained that he was recently given ownership of App Center, and that because of <a href="http://www.readwriteweb.com/archives/facebook-launches-app-center-admits-it-is-an-advertising-company.php">new ad units they were building</a>, he was now responsible for over $1B/year in ad revenue. The execs in the room made clear that the success of my product would be an impediment to your ad revenue financial goals, and thus <em>even offering</em> me the chance to be acquired was a noble and kind move on their part.</p>

<p>I am not sure if this bubbled up to you, Mark, but after this all happened I directly communicated my feedback regarding just how unhappy I was with this situation to one of your executives. The executive apologized and said he would take my feedback under consideration. </p>

<p>Mark, I know for a fact that my experience was <strong>not</strong> an isolated incident. Several other startup founders &amp; Facebook employees have told me that what I experienced was part of a systematic M&amp;A &ldquo;formula&rdquo;. Your team doesn&rsquo;t seem to understand that being &ldquo;good negotiators&rdquo; vs implying that you will destroy someone&rsquo;s business built on your &ldquo;open platform&rdquo; are <strong>not the same thing</strong>. I know all about intimidation-based negotiation tactics: I experienced them for years while <a href="http://techcrunch.com/2010/10/20/imeem-founder-dalton-caldwells-must-see-talk-on-the-challenges-facing-music-startups/">dealing with the music industry</a>. <a href="http://settlenow.org/BadFaithNegotiations.html">Bad-faith negotiations</a> are inexcusable, and I didn&rsquo;t want to believe your company would stoop this low. My mistake.</p>

<p>In a lot of ways, I got what I deserved. I have come to the conclusion that I took this foolhardy risk because the Twitter &ldquo;platform&rdquo; was even more of a joke than the Facebook &ldquo;platform&rdquo;. As someone that wants to build quality social software, software that doesn&rsquo;t force users to re-create their friends list, or not use oAuth, etc., I <em>have</em> to endure huge <a href="http://techcrunch.com/2011/05/23/fred-wilson-be-your-own-bitch/">platform risk</a>. Personally speaking, I am resolved to never write another line of code for rotten-to-the-core <a href="http://www.digiday.com/platforms/the-case-vs-ad-supported-platforms/">&ldquo;platforms&rdquo;</a> like Facebook or Twitter. Lesson learned.</p>

<p>Mark, I don&rsquo;t believe that the humans working at Facebook or Twitter want to do the wrong thing. The problem is, employees at Facebook and Twitter are watching your stock price fall, and that is causing them to <a href="http://www.hunterwalk.com/2012/07/the-8-billion-elephant-in-room-how-to.html">freak out</a>. Your company, and Twitter, have demonstrably proven that they are willing to screw with users and 3rd-party developer ecosystems, all in the name of <a href="http://daltoncaldwell.com/hot-dogs-and-caviar">ad-revenue</a>. Once you start down the slippery-slope of messing with developers and users, <a href="http://hbswk.hbs.edu/item/7007.html">I don&rsquo;t have any confidence you will stop</a>.</p>

<p>I believe that <a href="http://techcrunch.com/2012/07/30/dalton-caldwell-on-app-nets-plan-to-build-a-dependable-ad-free-version-of-twitter-tctv/">future social platforms</a> will <a href="http://daltoncaldwell.com/critical-mass-vs-network-effects">behave more like infrastructure, and less like media companies</a>. I believe that a number of smaller, interoperable social platforms with a clear, sustainable business models will usurp you. These future companies will be valued at a small fraction of what Facebook and Twitter currently are. I think that is OK. Platforms are judged by the value generated by their ecosystem, not by the value the platforms directly capture.</p>

<p>I don&rsquo;t think you or your employees are bad people. I just think you constructed a business that has financial motivations that are <a href="http://daltoncaldwell.com/fred-wilson-is-wrong-about-free">not in-line with users &amp; developers</a>. Even if <a href="http://join.app.net">my project</a> isn&rsquo;t the mechanism that instigates this change, the change <em>will</em> happen. </p>

<p>Mark, based on everything I know about you, I think you <em>get</em> all of this. It&rsquo;s why you launched FB platform to begin with. Do remember how you used to always refer to Facebook as a &ldquo;<a href="http://www.time.com/time/business/article/0,8599,1644040,00.html">social utility</a>&rdquo;? That is an interesting term to use. I haven&rsquo;t heard you use that terminology in a while.  I can guess why.</p>

<p>Anyway, Mark, perhaps the public markets &amp; your employees will give you the time and goodwill to fix the obvious structural flaws in your &ldquo;platform&rdquo; business. You are in a very challenging position right now. Good luck.</p>

<p>Respectfully,</p>

<p>Dalton Caldwell</p>

  <aside class="kudo kudoable" id="kudo_eidH62ZJUFcKy8neP7zxAqs8n6aVKaPbgYAgdXMAaX">
    <a href="?" class="kudobject">
      <div class="opening clearfix">
        <span class="circle">&nbsp;</span>
      </div>
    </a>

    <a href="?" class="counter">
      <span class="num">&hellip;</span>
      <span class="txt">Kudos</span>
    </a>
  </aside>
</article>

  <nav class="pagination">
    <span class="prev">
      <a href="http://daltoncaldwell.com" class="back_to_blog">&larr;&nbsp;&nbsp;&nbsp;Back to blog</a>
    </span>
  </nav>
</section>
  <script data-cfasync="false" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  <script src="https://d1yg14i6wd46hx.cloudfront.net/cargo/build.blog-fbbd286cd789959ecbbc5e3a9b02c4a7.js" type="text/javascript"></script>
  <script type='text/javascript'>var _sf_async_config={};_sf_async_config.uid = 1721;_sf_async_config.domain = 'svbtle.com';_sf_async_config.sections = 'Tech';_sf_async_config.authors = 'Dalton Caldwell / dalton / daltoncaldwell.com';(function(){function loadChartbeat() {window._sf_endpt=(new Date()).getTime();var e = document.createElement('script');e.setAttribute('language', 'javascript');e.setAttribute('type', 'text/javascript');e.setAttribute('src',(('https:' == document.location.protocol) ? 'https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/' : 'http://static.chartbeat.com/')+'js/chartbeat.js');document.body.appendChild(e);}var oldonload = window.onload;window.onload = (typeof window.onload != 'function') ? loadChartbeat : function() { oldonload(); loadChartbeat(); };})();</script>
</body>
</html>